﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domaine;
using Persistance.ViewModel;

namespace Persistance
{
    public interface IGestionProjet
    {
        CalendarYear GetCalendarYear(string login, int year);

        CalendarMonth GetCalendarMonth(string login, int year, int month);

        CalendarWeek GetCalendarWeek(string login, int fyear, int fmonth, int fday, int lyear, int lmonth, int lday);

        CalendarYear GetProjectCalendarYear(string login, int year, string reference);

        CalendarMonth GetProjectCalendarMonth(string login, int year, int month, string reference);

        CalendarWeek GetProjectCalendarWeek(string login, int fyear, int fmonth, int fday, int lyear, int lmonth, int lday, string reference);

        List<ProjectFullDetailModel> GetAllProjectForYear(string login, int year);

        ProjectFullDetailModel GetProject(string login, string reference);

        List<LeaderProjectSimpleModel> GetLeaderProject(string critere);

        List<CollaboratorViewModel> GetCollaborators(string critere);

        void AddProject(string login, string reference, string name, DateTime beginDate, DateTime endDate, string client, string color, String loginCP );

        void EditProject(string login, string reference, string name, DateTime beginDate, DateTime endDate, int state, string client, string color);

        List<CollaboratorViewModel> GetTeamProject(string login, string reference);

        void AddCollabToTeamProject(string login, string reference, string loginCollab);

        void RemoveCollabFromTeamProject(string login, string reference, string loginCollab);

        List<ViewModel.State> GetAllState();

        void AddTasks( string login, List<TaskViewModel> tasks);

        void EditTask( string login, int idTask, TaskViewModel task);

        void DeleteTask(string login, int idTask);

        TaskViewModel GetTask(string login, int idTask);
    }
}
